package com.zb.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.zb.entity.ZjOrganizeEmp;

import java.util.List;

/**
 * <p>
 * 商家组织人员表 服务类
 * </p>
 *
 * @author WEN
 * @since 2023-07-22
 */
public interface ZjOrganizeEmpService extends IService<ZjOrganizeEmp> {

    /**
     * 保存或更改组织管理员
     * @param custAccId 商家ID
     * @param organizeId 组织ID
     * @param manegerEmpId 管理人员ID
     */
    void saveOrganizeManagerEmp(Long custAccId, Long organizeId, Long manegerEmpId);

    /**
     * 保存组织人员
     * @param custAccId 商家ID
     * @param organizeId 组织ID
     * @param empId 人员ID
     */
    void saveOrganizeEmp(Long custAccId, Long organizeId, Long empId);

    /**
     * 根据[组织ID]&[人员ID集合]查询是否存在关联
     *
     * @param organizeId 组织ID
     * @param empIdList  人员ID集合
     * @return
     */
    Integer existByEmpIdList(Long organizeId, List<Long> empIdList);

    /**
     * 根据[组织人员ID]集合删除
     * @param organizeId 组织ID
     * @param empIdList 组织人员ID集合
     */
    void removeByOrganizeIdAndEmpId(Long organizeId, List<Long> empIdList);

    /**
     * 根据职员ID获取组织职员信息
     *
     * @param empId 职员ID
     * @return
     */
    Long getOrganizeIdByEmpId(Long empId);

    /**
     * 根据人员ID获取职员组织关系
     * @param empId 人员ID
     * @return
     */
    ZjOrganizeEmp getByEmpId(Long empId);

    /**
     * 根据部门组织ID获取部门组织主管ID
     * @param organizeId 部门组织ID
     * @return
     */
    Long getOrganizeManagerEmpIdByOrganizeId(Long organizeId);
}
